/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package com.lostreseditores.logica;

import com.lostreseditores.modelo.Estudiante;
import com.lostreseditores.persistencia.EstudianteFacadeLocal;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;

/**
 *
 * @author DILOVE
 */
@Stateless
public class EstudianteLogica implements EstudianteLogicaLocal {
    @EJB
    private EstudianteFacadeLocal estudianteDAO;
    
    @Override
    public void registrar(Estudiante estudiante) throws Exception {
        Estudiante objEstudiante = estudianteDAO.find((Object)estudiante.getIdEstudiante());
        if(objEstudiante!=null){
            throw new Exception("El estudiante a registrar Ya existe");
        }
        if(estudiante.getIdEstudiante()==null){
            throw new Exception("El id es obligatorio");
        }
        if(estudiante.getNombresestudiante()==null || estudiante.getNombresestudiante().equals("")){
            throw new Exception("El nombre es obligatorio");
        }
        estudianteDAO.create(estudiante);
    }

    @Override
    public void modificar(Estudiante estudiante) throws Exception {
        Estudiante objEstudiante = estudianteDAO.find((Object)estudiante.getIdEstudiante());
        if(objEstudiante==null){
            throw new Exception("El estudiante a modificar no existe");
        }
        if(estudiante.getIdEstudiante()==null){
            throw new Exception("El id es obligatorio");
        }
        if(estudiante.getNombresestudiante()==null || estudiante.getNombresestudiante().equals("")){
            throw new Exception("El nombre es obligatorio");
        }
        estudianteDAO.edit(estudiante);
    }

    @Override
    public void eliminar(Estudiante estudiante) throws Exception {
        Estudiante objEstudiante = estudianteDAO.find((Object)estudiante.getIdEstudiante());
        if(objEstudiante==null){
            throw new Exception("El estudiante a eliminar no existe");
        }
        if(estudiante.getIdEstudiante()==null){
            throw new Exception("El id es obligatorio");
        }
        if(estudiante.getNombresestudiante()==null || estudiante.getNombresestudiante().equals("")){
            throw new Exception("El nombre es obligatorio");
        }
        estudianteDAO.remove(estudiante);
    }

    @Override
    public Estudiante consultarPorId(Integer idEstudiante) throws Exception {
        if(idEstudiante==null || idEstudiante==0){
            throw new Exception("El id a consultar es obligatorio");
        }
        return estudianteDAO.find((Object)idEstudiante);
    }

    @Override
    public List<Estudiante> consultar() throws Exception {
        return estudianteDAO.findAll();
    }
}
